
#include <windows.h>

static char *vkey_names =
{
	"",
	"LBUTTON",
	"RBUTTON",
	"CANCEL",
	"MBUTTON",
	"XBUTTON1",
	"XBUTTON2",
	"",
	"BACK",
	"TAB",
	"",
	"",
	"CLEAR",
	"RETURN",
	"",
	"",
	"SHIFT",
	"CONTROL",
	"MENU",
	"PAUSE",
	"CAPITAL",
	"KANA",
	"",
	"JUNJA",
	"FINAL",
	"KANJI",
	"",
	"ESCAPE",
	"CONVERT",
	"NONCONVERT",
	"ACCEPT",
	"MODECHANGE",
	"SPACE",
	"PRIOR",
	"NEXT",
	"END",
	"HOME",
	"LEFT",
	"UP",
	"RIGHT",
	"DOWN",
	"SELECT",
	"PRINT",
	"EXECUTE",
	"SNAPSHOT",
	"INSERT",
	"DELETE",
	"HELP",
	"0",
	"1",
	"2",
	"3",
	"4",
	"5",
	"6",
	"7",
	"8",
	"9",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"A",
	"B",
	"C",
	"D",
	"E",
	"F",
	"G",
	"H",
	"I",
	"J",
	"K",
	"L",
	"M",
	"N",
	"O",
	"P",
	"Q",
	"R",
	"S",
	"T",
	"U",
	"V",
	"W",
	"X",
	"Y",
	"Z",
	"RWIN",
	"APPS",
	"",
	"SLEEP",
	"NUMPAD0",
	"NUMPAD1",
	"NUMPAD2",
	"NUMPAD3",
	"NUMPAD4",
	"NUMPAD5",
	"NUMPAD6",
	"NUMPAD7",
	"NUMPAD8",
	"NUMPAD9",
	"MULTIPLY",
	"ADD",
	"SEPARATOR",
	"SUBTRACT",
	"DECIMAL",
	"DIVIDE",
	"F1",
	"F2",
	"F3",
	"F4",
	"F5",
	"F6",
	"F7",
	"F8",
	"F9",
	"F10",
	"F11",
	"F12",
	"F13",
	"F14",
	"F15",
	"F16",
	"F17",
	"F18",
	"F19",
	"F20",
	"F21",
	"F22",
	"F23",
	"F24",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"NUMLOCK",
	"SCROLL",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"LSHIFT",
	"RSHIFT",
	"LCONTROL",
	"RCONTROL",
	"LMENU",
	"RMENU",
	"BROWSER_BACK",
	"BROWSER_FORWARD",
	"BROWSER_REFRESH",
	"BROWSER_STOP",
	"BROWSER_SEARCH",
	"BROWSER_FAVORITES",
	"BROWSER_HOME",
	"VOLUME_MUTE",
	"VOLUME_DOWN",
	"VOLUME_UP",
	"MEDIA_NEXT_TRACK",
	"MEDIA_PREV_TRACK",
	"MEDIA_STOP",
	"MEDIA_PLAY_PAUSE",
	"LAUNCH_MAIL",
	"LAUNCH_MEDIA_SELECT",
	"LAUNCH_APP1",
	"LAUNCH_APP2",
	"",
	"",
	"OEM_1",
	"OEM_PLUS",
	"OEM_COMMA",
	"OEM_MINUS",
	"OEM_PERIOD",
	"OEM_2",
	"OEM_3",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"OEM_4",
	"OEM_5",
	"OEM_6",
	"OEM_7",
	"OEM_8",
	"",
	"",
	"OEM_102",
	"",
	"",
	"PROCESSKEY",
	"",
	"PACKET",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"",
	"ATTN",
	"CRSEL",
	"EXSEL",
	"EREOF",
	"PLAY",
	"ZOOM",
	"NONAME",
	"PA1",
	"OEM_CLEAR",
	""
};

char *GetVkeyName(int vkey)
{
	return vkey_names[vkey];
}

int GetVkeyByName(char *name)
{
	int vkey;

	for (vkey = 0; vkey < 256; vkey++)
	{
		if (StrCmpI(vkey_names[vkey], name) == 0)
		{
			return vkey;
		}
	}

	return 0;
}

